﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ОбластиДанныхОбъектовДоступа
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"c2592f79-fb19-41ef-b2e7-20976feefe9d\", \"Представление\":\"ФизическиеЛицаСписок\"}")]
		ФизическиеЛицаСписок = 0,//Физические лица (список)
		[EnumMember(Value = "{\"Ссылка\":\"265938b3-4776-4f9f-9421-e6ef8c54dd6d\", \"Представление\":\"ФизическиеЛицаДанные\"}")]
		ФизическиеЛицаДанные = 1,//Физические лица (данные)
		[EnumMember(Value = "{\"Ссылка\":\"6d272adb-383a-4f93-86bd-8b66b4aca869\", \"Представление\":\"КонтрагентыСписок\"}")]
		КонтрагентыСписок = 2,//Контрагенты (список)
		[EnumMember(Value = "{\"Ссылка\":\"0c63721d-011e-43a9-8a27-f26cae5127cb\", \"Представление\":\"КонтрагентыДанные\"}")]
		КонтрагентыДанные = 3,//Контрагенты (данные)
		[EnumMember(Value = "{\"Ссылка\":\"d44a773a-6881-48f0-945e-e1c629cc683a\", \"Представление\":\"КонтрагентыДопИнформация\"}")]
		КонтрагентыДопИнформация = 4,//Контрагенты (доп. информация)
		[EnumMember(Value = "{\"Ссылка\":\"30b34671-a565-4559-b95a-fd46e74cee99\", \"Представление\":\"ЦеныНоменклатуры\"}")]
		ЦеныНоменклатуры = 5,//Цены номенклатуры
		[EnumMember(Value = "{\"Ссылка\":\"73b78ac7-740a-4dee-a625-78bf3821cc99\", \"Представление\":\"ЦеныНоменклатурыКонтрагентов\"}")]
		ЦеныНоменклатурыКонтрагентов = 6,//Цены номенклатуры контрагентов
	}
	public static partial class ОбластиДанныхОбъектовДоступа_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ФизическиеЛицаСписок = new Guid("9720e7b2-ee6f-9dfe-41ef-fb19c2592f79");//Физические лица (список)
		public static readonly Guid ФизическиеЛицаДанные = new Guid("efe62194-548c-6ddd-4f9f-4776265938b3");//Физические лица (данные)
		public static readonly Guid КонтрагентыСписок = new Guid("668bbd86-acb4-69a8-4f93-383a6d272adb");//Контрагенты (список)
		public static readonly Guid КонтрагентыДанные = new Guid("6cf2278a-51ae-cb27-43a9-011e0c63721d");//Контрагенты (данные)
		public static readonly Guid КонтрагентыДопИнформация = new Guid("c6e15e94-cc29-3a68-48f0-6881d44a773a");//Контрагенты (доп. информация)
		public static readonly Guid ЦеныНоменклатуры = new Guid("46fd5ab9-4ce7-99ee-4559-a56530b34671");//Цены номенклатуры
		public static readonly Guid ЦеныНоменклатурыКонтрагентов = new Guid("bf7825a6-2138-99cc-4dee-740a73b78ac7");//Цены номенклатуры контрагентов
		public static ОбластиДанныхОбъектовДоступа Получить(this ОбластиДанныхОбъектовДоступа Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ОбластиДанныхОбъектовДоступа Получить(this ОбластиДанныхОбъектовДоступа Значение, Guid Ссылка)
		{
			if(Ссылка == ФизическиеЛицаСписок)
			{
				return ОбластиДанныхОбъектовДоступа.ФизическиеЛицаСписок;
			}
			else if(Ссылка == ФизическиеЛицаДанные)
			{
				return ОбластиДанныхОбъектовДоступа.ФизическиеЛицаДанные;
			}
			else if(Ссылка == КонтрагентыСписок)
			{
				return ОбластиДанныхОбъектовДоступа.КонтрагентыСписок;
			}
			else if(Ссылка == КонтрагентыДанные)
			{
				return ОбластиДанныхОбъектовДоступа.КонтрагентыДанные;
			}
			else if(Ссылка == КонтрагентыДопИнформация)
			{
				return ОбластиДанныхОбъектовДоступа.КонтрагентыДопИнформация;
			}
			else if(Ссылка == ЦеныНоменклатуры)
			{
				return ОбластиДанныхОбъектовДоступа.ЦеныНоменклатуры;
			}
			else if(Ссылка == ЦеныНоменклатурыКонтрагентов)
			{
				return ОбластиДанныхОбъектовДоступа.ЦеныНоменклатурыКонтрагентов;
			}
			return ОбластиДанныхОбъектовДоступа.ПустаяСсылка;
		}
		public static byte[] Ключ(this ОбластиДанныхОбъектовДоступа Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ОбластиДанныхОбъектовДоступа Значение)
		{
			switch (Значение)
			{
				case ОбластиДанныхОбъектовДоступа.ФизическиеЛицаСписок: return ФизическиеЛицаСписок;
				case ОбластиДанныхОбъектовДоступа.ФизическиеЛицаДанные: return ФизическиеЛицаДанные;
				case ОбластиДанныхОбъектовДоступа.КонтрагентыСписок: return КонтрагентыСписок;
				case ОбластиДанныхОбъектовДоступа.КонтрагентыДанные: return КонтрагентыДанные;
				case ОбластиДанныхОбъектовДоступа.КонтрагентыДопИнформация: return КонтрагентыДопИнформация;
				case ОбластиДанныхОбъектовДоступа.ЦеныНоменклатуры: return ЦеныНоменклатуры;
				case ОбластиДанныхОбъектовДоступа.ЦеныНоменклатурыКонтрагентов: return ЦеныНоменклатурыКонтрагентов;
			}
			return Guid.Empty;
		}
	}
}